// 使用Express框架构建web服务

//1. 导入Express
const express = require("express");
// 导入自定义实用代码库
const {decode} = require("./utils/index");
// 导入会员和图书路由
const adminRouter = require("./routes/adminList");
const booksRouter = require("./routes/booksList");
//2. 创建app应用
const app = express();

// 通过一个中间件，让服务具有跨域访问
app.use((req, res, next) =>{
    res.setHeader('Access-Control-Allow-Origin','*')
    res.setHeader('Access-Control-Allow-Methods','*')
    res.setHeader('Access-Control-Allow-Headers','*')
    //console.log(req.url);
    // 判断并验证用户是否登录
    // if((req.url.startsWith("/admin") || req.url.startsWith("/books")) && req.url != "/admin/login"){
    //     // 获取token，并decode token 判断token是否合法，合法，next()
    //     // 不合法，{code:9,msg:'token异常'}
    //     let token = req.headers.token;
    //     decode(token).then(value => {
    //         next()
    //     }, error => {
    //         // 如果有错误，响应一个特殊的状态码
    //         res.json({
    //             code: 9,
    //             msg: 'token异常: ' + error
    //         })
    //     })
    //     return;
    // }
    next()
});

// （中间件）使用编码处理post请求参数
app.use(express.urlencoded({ extended: true }));
// 请求头 content-type: application/json     app.use(express.json())
app.use(express.json());
// 配置静态资源目录
app.use("/static",express.static("public"));

//3. 配置路由
app.use("/admin", adminRouter); // 使用会员路由模块
app.use("/books", booksRouter); // 使用图书路由模块

//4. 设置监听端口并开启服务
app.listen(3000, ()=>{
    console.log("服务已启动，端口为3000！");
});  